home *** CD-ROM | disk | FTP | other *** search
- Quick reference of some of the Object structures used by Precognition:
-
- /* All 'objects' are derrived from this structrure, i.e. they have
- ** an 'isa' pointer as their first member. The 'isa' pointer points
- ** to the 'PClass' structure for the object.
- **
- ** NOTE: PObjects do NOT need to have an PObjectName associated with
- ** them. This field is used by the Application builder to attach
- ** a variable name.
- */
-
- typedef struct PObject
- {
- const PClass *isa; /* Points to the objects 'PClass' structure. */
- char *PObjectName; /* Used by interface builder. */
- } PObject;
-
-
-
- typedef struct GraphicObject
- {
- const PClass *isa;
- char *PObjectName;
- void *Next; /* Points to next GraphicObject in chain. */
- } GraphicObject;
-
-
- typedef struct Interactor
- {
- const PClass *isa;
- char *PObjectName;
- void *Next; /* Points to next Interactor in chain. */
- struct pcgWindow *IaWindow; /* window where this interactor lives. */
- Point Location;
- Point Size;
- } Interactor;
-
-
- /*
- ** NOTE: Interactor & pcgWindow have circular dependencies.
- ** Each contain pointers to the other.
- */
-
- /*
- ** NOTE: Do *NOT* set these fields directly! Instead, use the
- ** supplied methods 'SetInteractorWindow()', 'SetLocation()',
- ** 'SetSize()' etc. There is more to setting the window/location/size
- ** of a interactor than simply assigning to these fields.
- */
-
- typedef Interactor Valuator; /* same structure definition */
-
- typedef struct pcgWindow
- {
- PClass *isa;
- char *PObjectName;
- void *Next; /* Not used. */
- struct pcgWindow *IaWindow; /* not used. */
- Point Location;
- Point Size;
- struct NewWindow NewWindow;
- struct Window *Window;
- ULONG IDCMPFlags;
- struct Interactor *FirstInteractor;
- struct GraphicObject *FirstGraphic;
- struct MsgPort *SharedUserPort;
- Menu *MenuStrip;
- } pcgWindow;
-
- /*
- The field 'IDCMPFlags' maintains the current IDCMP values. The field
- NewWindow.IDCMPFlags contains the bare minimum IDCMP values that the
- window must have. (Other IDCMP flags are set automagically by adding
- Interactors to the window.
-
- NOTE: If SharedUserPort is not NULL, it is assumed to be a pointer to
- a valid MessagePort structure, and that the window is to use this
- MessagePort as its UserPort instead of creating its own.
-
- This is useful for having multiple windows sharing one MessagePort.
- (See the Amiga 1.3 RKMs: Libraries and Devices, Chapter 7, page 171
- for more details on sharing UserPorts.
- */
-
-